package lanqiao.真题.第13届Java大学B组;
import java.util.Scanner;

/**
 * @author 挚爱之夕
 * @version 1.0
 * @implSpec 满足N!的末尾恰好有K个0的最小的N是多少？
 * 如果这样的N不存在输出-1。
 * 【输入格式】
 * 一个整数K
 * 【输出格式】
 * 一个整数代表答案
 * 【样例输入】
 * 2
 * 【样例输出】
 * 10
 * 【评测用例规模与约定】
 * 对于30%的数据，1≤K≤10^6^
 * 对于100%的数据，1≤K≤10^18^
 * 思路：
 * 二分找最小 计算阶乘末尾有几个0
 * @since 2023 - 03 - 08 - 11:19
 */
public class E_求阶乘 {
}

class Main_E {
    /*
    末尾0 是 2 * 5  得到的
    就是计算 因子中2的个数a 和 因子中 5的个数b
    取最小的
    因为乘积 2 的个数 比 5的个数多，所以计算5的个数即可
     */
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        long k = sc.nextLong();
        long l = 1, r = Long.MAX_VALUE;
        while (l < r) {
            long mid = l + ((r - l) >> 1);
            if (query(mid) >= k) r = mid;
            else l = mid + 1;
        }

        long x = query(r);
        System.out.println(x == k ? r : -1);
//        System.out.println(query(5));   //1
//        System.out.println(query(10));  //2
//        System.out.println(query(15));  //3
//        System.out.println(query(20));  //4
//        System.out.println(query(100));  //24
    }

    /**
     * 求 x! 末尾0的个数
     * 看 x! 中 5因子的个数
     */
    static long query(long x) {
        long ans = 0;
        while (x > 0) {
            ans += x / 5;
            x /= 5;
        }
        return ans;
    }
}

/*
能通过个别用例
 */
class Main_E1 {
    static Scanner sc = new Scanner(System.in);

    public static void main(String[] args) {
        // 23! = 8128291617894825984
        // 24! 已经超出long的最大值了
        long k = sc.nextLong();
        int n = 1;
        long f = 1;
        long mod = (long) Math.pow(10, k);
        while (n <= 25) {
            f *= n;
            System.out.println(f);
            if (f % mod == 0) {   //末尾k个0
                System.out.println(n);
                return;
            }
            n++;
        }
        System.out.println(-1);
    }
}
